function [Val,Vhat]=Fun_Vhat(PP,SS,T,Profit,TAU,w,State)
% T=SS.T;Profit=SS.Profit;TAU=SS.TAU;w_N=SS.w_N;w_H=SS.w_H;State=SS.FunApp.V.State;
%% Preliminary
% States
N_State     =   size(State,1);
f           =   State(:,1);
ID_z        =   SS.FunApp.ExoState.State(State(:,2),1);
z           =   PP.ExoState.IdioInc.Node(ID_z);

what        =   (1-TAU)*w;

%% Evaluation
wN_SS       =   SS.w*SS.N;
bb          =   T+Profit*z+f;
b           =   zeros(N_State,1);
FC          =   zeros(N_State,1);
fp          =   zeros(N_State,1);
Exp         =   bb-b;
[~,MinExp,~]=   UtilityFlow_Sep(PP.NU_C,PP.NU_L,SS.PSI,z.*what,PP.MinCon*wN_SS,'Consumption');
MinExp      =   MinExp/wN_SS;
UI          =   (1+PP.UI_Slack)*max(MinExp-Exp,0);
Exp         =   UI+Exp;
[u,c,l]     =   UtilityFlow_Sep(PP.NU_C,PP.NU_L,SS.PSI,z.*what,Exp*wN_SS,'Expenditure');
c           =   c/wN_SS;
% l           =   l/PP.N_SS;
Val         =   u;
Vhat        =   struct('Val',Val,...
                       'Policy',struct('c',c,'l',l,'zl',z.*l, ...
                                       'b',b,'fp',fp,'FC',FC,...
                                       'UI',UI) ...
                       );